﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

using CapaNegocio;
namespace CapaPresentacion
{
    public partial class frmRegistro_Compras : Form
    {
        public int Idtrabajador;
        private bool IsNuevo;
        private bool IsEditar = false;
        public static string Variable;
        public static string Variabledebe;
            

        private static frmRegistro_Compras _Instancia;
        public static frmRegistro_Compras GetInstancia()
        {
            if (_Instancia == null)
            {
                _Instancia = new frmRegistro_Compras();
            }
            return _Instancia;
        }

        //Creamos un método para enviar los valores recibidos del proveedor  
        public void SetProveedor(string idpersonaempresa, string ruc, string razon_social)
        {
            this.txtIdproveedor.Text = idpersonaempresa;
            this.txtRuc.Text = razon_social;
            this.txtRazonSocial.Text = ruc;
        }

        public void setPlancontable(string idplancontable, string cuenta, string nombrecuenta)
        {
            this.txtIdDebe.Text = idplancontable;
            this.txtcodigodebe.Text = cuenta;            
            this.txtdescricciondebe.Text = nombrecuenta;
        }

        public frmRegistro_Compras()
        {
            InitializeComponent();
            this.txtidregistrocompras.Visible = false;
            this.txtIdproveedor.Visible = false;
            this.txtIdDebe.Visible = false;
            this.txtRazonSocial.ReadOnly = true;
            this.txtdescricciondebe.ReadOnly = true;
            this.LlenarComboPresentacion();
            this.ttMensaje.SetToolTip(this.txtSerie_Tabla11, "Ingrese el N° Documento");
            
        }

        //Mostrar Mensaje de Confirmación
        private void MensajeOk(string mensaje)
        {
            MessageBox.Show(mensaje, "Sistema de Ventas", MessageBoxButtons.OK, MessageBoxIcon.Information);

        }


        //Mostrar Mensaje de Error
        private void MensajeError(string mensaje)
        {
            MessageBox.Show(mensaje, "Sistema de Ventas", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }

        //Limpiar todos los controles del formulario
        private void Limpiar()
        {
            this.dtFecha_Emision.Text = string.Empty;
            this.dtFecha_Vencimiento.Text = string.Empty;
            this.txtTipo_Cambio.Text = "3.29";
            this.txtSerie_Tabla11.Text = string.Empty;
            this.txtRuc.Text = string.Empty;
            this.txtRazonSocial.Text = string.Empty;
            this.txtGlosa.Text = string.Empty;
            this.dtAnho_Emisiondua.Text = string.Empty;
            this.txtNum_Comprobante_Pago.Text = " ";
            this.txtNum_Comprobante_Pago_Emitido_Snd.Text = " ";
            this.dtRp_Fecha.Text = string.Empty;
            this.txtRp_Num_Comprobante.Text = " ";
            this.txtRp_Serie.Text = " ";
            this.txtRp_tipo.Text = "1";
            this.txtCdd_Numero.Text = " ";
            this.dtCdd_Fecha_Emision.Text = string.Empty;
            this.txtBase_Imponible.Text = "0";
            this.txtBase1.Text = "0";
            this.txtBase2.Text = "0";
            this.lblIgv1.Text = "0";
            this.lblIgv2.Text = "0";
            this.lblIgv3.Text = "0";
            this.txtIsc.Text = "0";
            this.txtValores_Nogravados.Text = "0";
            this.txtOtros_Tributos_Cargos.Text = "0";
            this.txtDebe.Text = string.Empty;
            this.txtcodigodebe.Text = string.Empty;
            this.txtdescricciondebe.Text = string.Empty;
        }

        //Habilitar los controles del formulario
        private void Habilitar(bool valor)
        {
            this.dtFecha_Emision.Enabled = valor;
            this.dtFecha_Vencimiento.Enabled = valor;
            this.txtSerie_Tabla11.ReadOnly = !valor;
            this.txtGlosa.ReadOnly = !valor;
            this.dtAnho_Emisiondua.Enabled = valor;
            this.txtNum_Comprobante_Pago.ReadOnly = !valor;
            this.txtBase_Imponible.ReadOnly = !valor;
            this.txtRuc.ReadOnly = !valor;   
            this.txtValores_Nogravados.ReadOnly = !valor;   
            this.txtIsc.ReadOnly = !valor;
            this.txtOtros_Tributos_Cargos.ReadOnly = !valor;
            this.txtNum_Comprobante_Pago_Emitido_Snd.ReadOnly = !valor;
            this.txtCdd_Numero.ReadOnly = !valor;
            this.dtCdd_Fecha_Emision.Enabled = valor;
            this.txtTipo_Cambio.ReadOnly = !valor;
            this.dtRp_Fecha.Enabled = valor;
            this.txtRp_tipo.ReadOnly = !valor;
            this.txtRp_Serie.ReadOnly = !valor;
            this.txtRp_Num_Comprobante.ReadOnly = !valor;
            this.txtIdproveedor.ReadOnly = !valor;
            this.cbIdtabla10.Enabled = valor;
            this.txtIdDebe.ReadOnly = !valor;
            this.txtcodigodebe.ReadOnly = !valor;
            this.txtdescricciondebe.ReadOnly = !valor;
            this.txtDebe.ReadOnly = !valor;
            this.txtBase2.ReadOnly = !valor;
            this.txtBase1.ReadOnly = !valor;
            
        }

        //Habilitar los botones
        private void Botones()
         {
            if (this.IsNuevo || this.IsEditar) //Alt + 124
            {
                this.Habilitar(true);
                this.btnNuevo.Enabled = false;
                this.btnGuardar.Enabled = true;
                this.btnEditar.Enabled = false;
                this.btnCancelar.Enabled = true;
            }
            else
            {
                this.Habilitar(false);
                this.btnNuevo.Enabled = true;
                this.btnGuardar.Enabled = false;
                this.btnEditar.Enabled = true;
                this.btnCancelar.Enabled = false;
            }

        }

        //Método Mostrar
        private void Mostrar()
        {
            this.dataListado.DataSource = NRegistro_Compras.Mostrar();
            this.OcultarColumnas();
            lblTotal.Text = "Total de Registros: " + Convert.ToString(dataListado.Rows.Count);
        }

        //Método para ocultar columnas
        private void OcultarColumnas()
        {

            this.dataListado.Columns[0].Visible = false;
            this.dataListado.Columns[8].Visible = false;
            this.dataListado.Columns[12].Visible = false;
            this.dataListado.Columns[30].Visible = false;
            this.dataListado.Columns[31].Visible = false;
            this.dataListado.Columns[32].Visible = false;
        }
    

        //Método BuscarNombre
        private void BuscarCodigo()
        {
            this.dataListado.DataSource = NRegistro_Compras.BuscarFecha(this.txtBuscar.Text);
            this.OcultarColumnas();
            lblTotal.Text = "Total de Registros: " + Convert.ToString(dataListado.Rows.Count);
        }
        private void LlenarComboPresentacion()
        {
            cbIdtabla10.DataSource = NTabla10.Mostrar();
            cbIdtabla10.ValueMember = "idtabla10";
            cbIdtabla10.DisplayMember = "idtabla10";

        }

        private void frmRegistro_Compras_Load(object sender, EventArgs e)
        {
            //Para ubicar al formulario en la parte superior del contenedor  
            this.Top = 0;
            this.Left = 0;
            //Deshabilita los controles  
            this.Habilitar(false);
            this.Mostrar();
            this.txtBuscar.Text = frmPrincipalMenu.Variable;
            //Establece los botones  
            this.Botones();
        }


        private void frmRegistro_Compras_FormClosing(object sender, FormClosingEventArgs e)
        {
            _Instancia = null;
        }

        private void tabPage2_Click(object sender, EventArgs e)
        {

        }


        private void tabPage1_Click(object sender, EventArgs e)
        {

        }

        private void dataListado_DoubleClick(object sender, EventArgs e)
        {
            this.txtidregistrocompras.Text = Convert.ToString(this.dataListado.CurrentRow.Cells["NUMERO CORRELATIVO DEL REGISTRO O CODIGO UNICO DE LA OPERACION"].Value);
            this.dtFecha_Emision.Value = Convert.ToDateTime(this.dataListado.CurrentRow.Cells["FECHA DE EMISION DEL COMPROBANTE DE PAGO O DOCUMENTO"].Value);
            this.dtFecha_Vencimiento.Value = Convert.ToDateTime(this.dataListado.CurrentRow.Cells["FECHA DE VENCIMIENTOO FECHA DE PAGO (1)"].Value);
            this.cbIdtabla10.SelectedValue = Convert.ToString(this.dataListado.CurrentRow.Cells["TIPO (TABLA 10)"].Value);
            this.txtSerie_Tabla11.Text = Convert.ToString(this.dataListado.CurrentRow.Cells["SERIE O CODIGO DE LA DEPENDENCIA ADUANERA (TABLA 11)"].Value);
            this.dtAnho_Emisiondua.Value = Convert.ToDateTime(this.dataListado.CurrentRow.Cells["ANHO DE EMISION DE LA DUA O DSI"].Value);
            this.txtNum_Comprobante_Pago.Text = Convert.ToString(this.dataListado.CurrentRow.Cells["N° DEL COMPROBANTE DE PAGO DOCUMENTO"].Value);
            this.txtIdproveedor.Text = Convert.ToString(this.dataListado.CurrentRow.Cells["idpersonaempresa"].Value);
            this.txtRuc.Text = Convert.ToString(this.dataListado.CurrentRow.Cells["NUMERO"].Value);
            this.txtRazonSocial.Text = Convert.ToString(this.dataListado.CurrentRow.Cells["APELLIDOS Y NOMBRES DENOMINACION O RAZON SOCIAL"].Value);
            this.txtGlosa.Text = Convert.ToString(this.dataListado.CurrentRow.Cells["glosa"].Value);
            this.txtBase_Imponible.Text = Convert.ToString(this.dataListado.CurrentRow.Cells["BASE IMPONIBLE"].Value);
            this.lblIgv1.Text = Convert.ToString(this.dataListado.CurrentRow.Cells["Igv1"].Value);
            this.txtBase2.Text = Convert.ToString(this.dataListado.CurrentRow.Cells["BASE IMPONIBLE2"].Value);
            this.lblIgv2.Text = Convert.ToString(this.dataListado.CurrentRow.Cells["Igv2"].Value);
            this.txtBase1.Text = Convert.ToString(this.dataListado.CurrentRow.Cells["BASE IMPONIBLE3"].Value);
            this.lblIgv3.Text = Convert.ToString(this.dataListado.CurrentRow.Cells["Igv3"].Value);
            this.txtValores_Nogravados.Text = Convert.ToString(this.dataListado.CurrentRow.Cells["VALOR DE LAS ADQUISICIONES NO GRAVADAS"].Value);
            this.txtIsc.Text = Convert.ToString(this.dataListado.CurrentRow.Cells["ISC"].Value);
            this.txtOtros_Tributos_Cargos.Text = Convert.ToString(this.dataListado.CurrentRow.Cells["OTROS TRIBUTOS Y CARGOS"].Value);
            this.lblTotalPagado.Text = Convert.ToString(this.dataListado.CurrentRow.Cells["IMPORTE TOTAL"].Value);
            this.txtNum_Comprobante_Pago_Emitido_Snd.Text = Convert.ToString(this.dataListado.CurrentRow.Cells["N° DE COMPROBANTE DE PAGO EMITIDO POR SUJETO NO DOMICILIADO (2)"].Value);
            this.txtCdd_Numero.Text = Convert.ToString(this.dataListado.CurrentRow.Cells["CCD NUMERO"].Value);
            this.dtCdd_Fecha_Emision.Value = Convert.ToDateTime(this.dataListado.CurrentRow.Cells["FECHA DE EMISION"].Value);
            this.txtTipo_Cambio.Text = Convert.ToString(this.dataListado.CurrentRow.Cells["TIPO DE CAMBIO"].Value);
            this.dtRp_Fecha.Value = Convert.ToDateTime(this.dataListado.CurrentRow.Cells["FECHA"].Value);
            this.txtRp_Serie.Text = Convert.ToString(this.dataListado.CurrentRow.Cells["SERIE"].Value);
            this.txtRp_tipo.Text = Convert.ToString(this.dataListado.CurrentRow.Cells["tabla10"].Value);
            this.txtRp_Num_Comprobante.Text = Convert.ToString(this.dataListado.CurrentRow.Cells["NUMERO DEL COMPROBANTE DE PAGO O DOCUMENTO"].Value);
            this.txtDebe.Text = Convert.ToString(this.dataListado.CurrentRow.Cells["BASE IMPONIBLE"].Value);
            this.txtIdDebe.Text = Convert.ToString(this.dataListado.CurrentRow.Cells["idplancontable"].Value);
            this.txtcodigodebe.Text = Convert.ToString(this.dataListado.CurrentRow.Cells["Cuenta"].Value);
            this.txtdescricciondebe.Text = Convert.ToString(this.dataListado.CurrentRow.Cells["Nombre_Cuenta"].Value);
            this.tabControl1.SelectedIndex = 1;
        
        }

        private void txtRp_Num_Comprobante_TextChanged(object sender, EventArgs e)
        {

        }

        private void btnGuardar_Click(object sender, EventArgs e)
        {
            if(this.PrbHaber.Text.Equals(this.PrbDebe.Text)){

            
            try
            {
                string rpta = "";
                if (this.txtRuc.Text == string.Empty )
                {
                    MensajeError("Falta ingresar algunos datos, serán remarcados");
                    errorIcono.SetError(txtRuc, "Ingrese un Valor");
                }
                else
                {
                    if (this.IsNuevo)
                    {


                        rpta = NRegistro_Compras.Insertar(
                                    this.dtFecha_Emision.Value,
                                    this.dtFecha_Vencimiento.Value,
                                    this.txtSerie_Tabla11.Text,
                                    this.txtGlosa.Text,
                                    this.dtAnho_Emisiondua.Value,
                                    this.txtNum_Comprobante_Pago.Text,
                                    Convert.ToDecimal(this.txtBase_Imponible.Text),
                                    Convert.ToDecimal(this.lblIgv1.Text),
                                    Convert.ToDecimal(this.txtValores_Nogravados.Text),
                                    Convert.ToDecimal(this.txtIsc.Text),
                                    Convert.ToDecimal(this.txtOtros_Tributos_Cargos.Text),
                                    this.txtNum_Comprobante_Pago_Emitido_Snd.Text,
                                    this.txtCdd_Numero.Text,
                                    this.dtCdd_Fecha_Emision.Value,
                                    this.txtTipo_Cambio.Text,
                                    this.dtRp_Fecha.Value,
                                    Convert.ToInt32(this.txtRp_tipo.Text),
                                    this.txtRp_Serie.Text,
                                    this.txtRp_Num_Comprobante.Text,
                                    Convert.ToInt32(this.txtIdproveedor.Text),
                                    Convert.ToInt32(cbIdtabla10.SelectedValue),
                                    Convert.ToInt32(this.txtIdDebe.Text),
                                    Idtrabajador,
                                    txtcodigodebe.Text,
                                    txtdescricciondebe.Text,
                                    Convert.ToDecimal(this.txtDebe.Text),
                                    Convert.ToDecimal(this.lblTotalPagado.Text),
                                    Convert.ToDecimal(this.txtBase2.Text),
                                    Convert.ToDecimal(this.lblIgv2.Text),
                                    Convert.ToDecimal(this.txtBase1.Text),
                                    Convert.ToDecimal(this.lblIgv3.Text),"PENDIENTE A CANCELAR");

                    }
                    else
                    {/*
                        decimal subTotal = Convert.ToDecimal(this.txtBase_Imponible.Text) + (Convert.ToDecimal(this.txtBase_Imponible.Text) * Convert.ToDecimal(0.18)) +
                                          Convert.ToDecimal(this.txtBase1.Text) + (Convert.ToDecimal(this.txtBase1.Text) * Convert.ToDecimal(0.18)) +
                                          Convert.ToDecimal(this.txtBase2.Text) + (Convert.ToDecimal(this.txtBase2.Text) * Convert.ToDecimal(0.18)) +
                                          Convert.ToDecimal(this.txtOtros_Tributos_Cargos.Text) +
                                          Convert.ToDecimal(this.txtIsc.Text) + Convert.ToDecimal(this.txtValores_Nogravados.Text);
                        totalPagado = totalPagado + subTotal;
                        this.lblTotalPagado.Text = totalPagado.ToString("#0.00#");*/


                        rpta = NRegistro_Compras.Editar(
                                   Convert.ToInt32(this.txtidregistrocompras.Text),
                                    this.dtFecha_Emision.Value,
                                    this.dtFecha_Vencimiento.Value,
                                    this.txtSerie_Tabla11.Text,
                                    this.txtGlosa.Text,
                                    this.dtAnho_Emisiondua.Value,
                                    this.txtNum_Comprobante_Pago.Text,
                                    Convert.ToDecimal(this.txtBase_Imponible.Text),
                                    Convert.ToDecimal(this.lblIgv1.Text),
                                    Convert.ToDecimal(this.txtValores_Nogravados.Text),
                                    Convert.ToDecimal(this.txtIsc.Text),
                                    Convert.ToDecimal(this.txtOtros_Tributos_Cargos.Text),
                                    this.txtNum_Comprobante_Pago_Emitido_Snd.Text,
                                    this.txtCdd_Numero.Text,
                                    this.dtCdd_Fecha_Emision.Value,
                                    this.txtTipo_Cambio.Text,
                                    this.dtRp_Fecha.Value,
                                    Convert.ToInt32(this.txtRp_tipo.Text),
                                    this.txtRp_Serie.Text,
                                    this.txtRp_Num_Comprobante.Text,
                                    Convert.ToInt32(this.txtIdproveedor.Text),
                                    Convert.ToInt32(cbIdtabla10.SelectedValue),
                                    Convert.ToInt32(this.txtIdDebe.Text),
                                    Idtrabajador,
                                    txtcodigodebe.Text,
                                    txtdescricciondebe.Text,
                                    Convert.ToDecimal(this.txtDebe.Text),
                                    Convert.ToDecimal(this.lblTotalPagado.Text),
                                    Convert.ToDecimal(this.txtBase2.Text),
                                    Convert.ToDecimal(this.lblIgv2.Text),
                                    Convert.ToDecimal(this.txtBase1.Text),
                                    Convert.ToDecimal(this.lblIgv3.Text),"PENDIENTE A CANCELAR");
                    }
                    
                    if (rpta.Equals("OK"))
                    {
                        if (this.IsNuevo)
                        {
                            this.MensajeOk("Se Insertó de forma correcta el registro");
                        }
                        else
                        {
                            this.MensajeOk("Se Actualizó de forma correcta el registro");
                        }

                    }
                    else
                    {
                        this.MensajeError(rpta);
                    }

                    this.IsNuevo = false;
                    this.IsEditar = false;
                    this.Botones();
                    this.Limpiar();
                    this.Mostrar();

                }
            }

            catch (Exception ex)
            {

                MessageBox.Show(ex.Message + ex.StackTrace);
            }
            }
            else
            {

                MensajeError("Las cuentas no estan saldadas");
            }
        }

        private void btnCancelar_Click(object sender, EventArgs e)
        {


            this.IsNuevo = false;
            this.IsEditar = false;
            this.Botones();
            this.Limpiar();
            this.Habilitar(false);

            this.dtFecha_Emision.Text = string.Empty;
            this.dtFecha_Vencimiento.Text = string.Empty;
            this.txtTipo_Cambio.Text = string.Empty;
            this.txtSerie_Tabla11.Text = string.Empty;
            this.txtRuc.Text = string.Empty;
            this.txtRazonSocial.Text = string.Empty;
            this.txtGlosa.Text = string.Empty;
            this.dtAnho_Emisiondua.Text = string.Empty;
            this.txtNum_Comprobante_Pago.Text = string.Empty;
            this.txtNum_Comprobante_Pago_Emitido_Snd.Text = string.Empty;
            this.dtRp_Fecha.Text = string.Empty;
            this.txtRp_Num_Comprobante.Text = string.Empty;
            this.txtRp_Serie.Text = string.Empty;
            this.txtRp_tipo.Text = string.Empty;
            this.txtCdd_Numero.Text = string.Empty;
            this.dtCdd_Fecha_Emision.Text = string.Empty;
            this.txtBase_Imponible.Text = string.Empty;
            this.txtBase1.Text = string.Empty;
            this.txtBase2.Text = string.Empty;
            this.txtIsc.Text = string.Empty;
            this.txtValores_Nogravados.Text = string.Empty;
            this.txtOtros_Tributos_Cargos.Text = string.Empty;
            this.txtDebe.Text = string.Empty;
            this.txtcodigodebe.Text = string.Empty;
            this.txtdescricciondebe.Text = string.Empty;
            this.lblIgv1.Text = "Igv";
            this.lblIgv2.Text = "Igv";
            this.lblIgv3.Text = "Igv";
            this.lblTotalPagado.Text = "Importe Total";
        
        }

        private void btnNuevo_Click(object sender, EventArgs e)
        {
            this.IsNuevo = true;
            this.Botones();
            this.Limpiar();
            this.IsEditar = false;
            this.Habilitar(true);
            this.txtSerie_Tabla11.Focus();

        }

        private void btnEditar_Click(object sender, EventArgs e)
        {
             if (!this.txtidregistrocompras.Text.Equals(""))
            {
                this.IsEditar = true;
                this.Botones();
                this.Habilitar(true);
            }
            else
            {
                this.MensajeError("Debe de seleccionar primero el registro a Modificar");
            }
        }

        private void txtBuscar_TextChanged(object sender, EventArgs e)
        {
            this.BuscarCodigo();
        }

        private void btnBuscar_Click(object sender, EventArgs e)
        {
            this.BuscarCodigo();
        }

        private void btnEliminar_Click(object sender, EventArgs e)
        {
            try
            {
                DialogResult Opcion;
                Opcion = MessageBox.Show("Realmente Desea Anular los Registros", "Sistema de Ventas", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);

                if (Opcion == DialogResult.OK)
                {
                    string CodigoN;
                    string Rpta = "";

                    foreach (DataGridViewRow row in dataListado.Rows)
                    {
                        if (Convert.ToBoolean(row.Cells[0].Value))
                        {
                            CodigoN = Convert.ToString(row.Cells[1].Value);
                            Rpta = NRegistro_Compras.Eliminar(Convert.ToInt32(CodigoN));

                            if (Rpta.Equals("OK"))
                            {
                                this.MensajeOk("Se Anulo Correctamente el registro");
                            }
                            else
                            {
                                this.MensajeError(Rpta);
                            }

                        }
                    }
                    this.Mostrar();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message + ex.StackTrace);
            }
        
        }

        private void chkEliminar_CheckedChanged(object sender, EventArgs e)
        {
            if (chkEliminar.Checked)
            {
                this.dataListado.Columns[0].Visible = true;
            }
            else
            {
                this.dataListado.Columns[0].Visible = false;
            }
        
        }

        private void dataListado_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.ColumnIndex == dataListado.Columns["Eliminando"].Index)
            {
                DataGridViewCheckBoxCell ChkEliminar =
                    (DataGridViewCheckBoxCell)dataListado.Rows[e.RowIndex].Cells["Eliminando"];
                ChkEliminar.Value = !Convert.ToBoolean(ChkEliminar.Value);
            } 
        }


        private void groupBox1_Enter(object sender, EventArgs e)
        {

        }


        //metodo de debe
        private void btnIngresardebe_Click(object sender, EventArgs e)
        {

            frmVista_Plancontable_Compras form = new frmVista_Plancontable_Compras();
            form.ShowDialog();
        }
        private void txtcodigodebe_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == Convert.ToChar(Keys.Enter))
            {
                frmVista_Plan_LibroCompras form = new frmVista_Plan_LibroCompras();
                Variable = txtcodigodebe.Text;
                form.ShowDialog();
            }

        }
        private void txtcodigodebe_TextChanged(object sender, EventArgs e)
        {
        }


        private void txtDebe_TextChanged(object sender, EventArgs e)
        {
            if (txtDebe.Text == string.Empty)
            {
                this.txtDebe.Text = "0";
            }

            decimal Debe = Convert.ToDecimal(this.txtDebe.Text);

            this.txtBase_Imponible.Text = Debe.ToString("0");
        }

  
        
        //base1
        private void txtBase_Imponible_TextChanged(object sender, EventArgs e)
        {

            if (txtBase_Imponible.Text == string.Empty)
            {
                this.txtBase_Imponible.Text = "0";
            }

            decimal igv1 = Convert.ToDecimal(this.txtBase_Imponible.Text) * Convert.ToDecimal(0.18);


            this.lblIgv1.Text = igv1.ToString("#0.00#");

            decimal debe = Convert.ToDecimal(this.txtBase_Imponible.Text) + igv1;
            this.PrbDebe.Text = debe.ToString("0");

        }
        private void textBox1_Enter(object sender, System.EventArgs e)
        {
            if (!String.IsNullOrEmpty(txtBase_Imponible.Text))
            {
                txtBase_Imponible.SelectionStart = 0;
                txtBase_Imponible.SelectionLength = txtBase_Imponible.Text.Length;
            }
        }


        //basedos
        private void txtBase1_TextChanged(object sender, EventArgs e)
        {
            if (txtBase1.Text == string.Empty)
            {
                this.txtBase1.Text = "0";
            }

            decimal igv2 = Convert.ToDecimal(this.txtBase1.Text) * Convert.ToDecimal(0.18);

            this.lblIgv2.Text = igv2.ToString("#0.00#");
        
        }

        private void txtBase2_TextChanged(object sender, EventArgs e)
        {
            if (txtBase2.Text == string.Empty)
            {
                this.txtBase2.Text = "0";
            }

            decimal igv3 = Convert.ToDecimal(this.txtBase2.Text) * Convert.ToDecimal(0.18);

            this.lblIgv3.Text = igv3.ToString("#0.00#");
        }

        private void txtBase_Imponible_Click(object sender, EventArgs e)
        {
            if (!String.IsNullOrEmpty(txtBase_Imponible.Text))
            {
                txtBase_Imponible.SelectionStart = 0;
                txtBase_Imponible.SelectionLength = txtBase_Imponible.Text.Length;
            }
        }

        private void txtBase1_Click(object sender, EventArgs e)
        {
            if (!String.IsNullOrEmpty(txtBase1.Text))
            {
                txtBase1.SelectionStart = 0;
                txtBase1.SelectionLength = txtBase1.Text.Length;
            }
        }

        private void txtBase2_Click(object sender, EventArgs e)
        {
            if (!String.IsNullOrEmpty(txtBase2.Text))
            {
                txtBase2.SelectionStart = 0;
                txtBase2.SelectionLength = txtBase2.Text.Length;
            }
        }

        private void txtDebe_Click(object sender, EventArgs e)
        {
            if (!String.IsNullOrEmpty(txtDebe.Text))
            {
                txtDebe.SelectionStart = 0;
                txtDebe.SelectionLength = txtDebe.Text.Length;
            }
        }

        private void lblTotalPagado_Click(object sender, EventArgs e)
        {

            decimal subTotal = Convert.ToDecimal(this.txtBase_Imponible.Text) + (Convert.ToDecimal(this.txtBase_Imponible.Text) * Convert.ToDecimal(0.18)) +
                   Convert.ToDecimal(this.txtBase2.Text) + (Convert.ToDecimal(this.txtBase2.Text) * Convert.ToDecimal(0.18)) +
                   Convert.ToDecimal(this.txtBase1.Text) + (Convert.ToDecimal(this.txtBase1.Text) * Convert.ToDecimal(0.18)) +
                   Convert.ToDecimal(this.txtOtros_Tributos_Cargos.Text) + Convert.ToDecimal(this.txtIsc.Text) +
                   Convert.ToDecimal(this.txtValores_Nogravados.Text);
            this.lblTotalPagado.Text = subTotal.ToString("#0.00#");

            this.PrbHaber.Text = subTotal.ToString("0");
            
        }



        //metodeo de proveedor
        private void btnBuscarProveedor_Click(object sender, EventArgs e)
        { 
            frmVista_PersonaEmpresa form = new frmVista_PersonaEmpresa();
            form.ShowDialog();

        }

        private void txtRuc_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == Convert.ToChar(Keys.Enter))
            {
                frmVista_Proveedor_LibroCompras form = new frmVista_Proveedor_LibroCompras();
                Variable = txtRuc.Text;
                form.ShowDialog();
            }
        }

        //VALIDACION DE NUMEROS
        private void txtDebe_KeyPress(object sender, KeyPressEventArgs e)
        {
            try
            {
                if (Char.IsNumber(e.KeyChar))
                {
                    e.Handled = false;
                }
                else if (Char.IsControl(e.KeyChar))
                {
                    e.Handled = false;
                }
                else
                {
                    e.Handled = true;
                }
            }
            catch (Exception ex)
            {

            }
        }

        private void txtBase_Imponible_KeyPress(object sender, KeyPressEventArgs e)
        {
            try
            {
                if (Char.IsNumber(e.KeyChar))
                {
                    e.Handled = false;
                }
                else if (Char.IsControl(e.KeyChar))
                {
                    e.Handled = false;
                }
                else
                {
                    e.Handled = true;
                }
            }
            catch (Exception ex)
            {

            }
        }

        private void txtBase1_KeyPress(object sender, KeyPressEventArgs e)
        {
            try
            {
                if (Char.IsNumber(e.KeyChar))
                {
                    e.Handled = false;
                }
                else if (Char.IsControl(e.KeyChar))
                {
                    e.Handled = false;
                }
                else
                {
                    e.Handled = true;
                }
            }
            catch (Exception ex)
            {

            }
        }

        private void txtBase2_KeyPress(object sender, KeyPressEventArgs e)
        {
            try
            {
                if (Char.IsNumber(e.KeyChar))
                {
                    e.Handled = false;
                }
                else if (Char.IsControl(e.KeyChar))
                {
                    e.Handled = false;
                }
                else
                {
                    e.Handled = true;
                }
            }
            catch (Exception ex)
            {

            }
        }

        private void txtValores_Nogravados_KeyPress(object sender, KeyPressEventArgs e)
        {

            try
            {
                if (Char.IsNumber(e.KeyChar))
                {
                    e.Handled = false;
                }
                else if (Char.IsControl(e.KeyChar))
                {
                    e.Handled = false;
                }
                else
                {
                    e.Handled = true;
                }
            }
            catch (Exception ex)
            {

            }
        }

        private void txtOtros_Tributos_Cargos_KeyPress(object sender, KeyPressEventArgs e)
        {

            try
            {
                if (Char.IsNumber(e.KeyChar))
                {
                    e.Handled = false;
                }
                else if (Char.IsControl(e.KeyChar))
                {
                    e.Handled = false;
                }
                else
                {
                    e.Handled = true;
                }
            }
            catch (Exception ex)
            {

            }
        }

        private void txtIsc_KeyPress(object sender, KeyPressEventArgs e)
        {

            try
            {
                if (Char.IsNumber(e.KeyChar))
                {
                    e.Handled = false;
                }
                else if (Char.IsControl(e.KeyChar))
                {
                    e.Handled = false;
                }
                else
                {
                    e.Handled = true;
                }
            }
            catch (Exception ex)
            {

            }
        }

        private void txtValores_Nogravados_TextChanged(object sender, EventArgs e)
        {
            if (txtValores_Nogravados.Text == string.Empty)
            {
                this.txtValores_Nogravados.Text = "0";
            }
        }

        private void txtOtros_Tributos_Cargos_TextChanged(object sender, EventArgs e)
        {
            if (txtOtros_Tributos_Cargos.Text == string.Empty)
            {
                this.txtOtros_Tributos_Cargos.Text = "0";
            }
        }

        private void txtIsc_TextChanged(object sender, EventArgs e)
        {
            if (txtIsc.Text == string.Empty)
            {
                this.txtIsc.Text = "0";
            }
        }

        private void txtSerie_Tabla11_KeyPress(object sender, KeyPressEventArgs e)
        {

            try
            {
                if (Char.IsNumber(e.KeyChar))
                {
                    e.Handled = false;
                }
                else if (Char.IsControl(e.KeyChar))
                {
                    e.Handled = false;
                }
                else
                {
                    e.Handled = true;
                }
            }
            catch (Exception ex)
            {

            }
        }

        private void txtSerie_Tabla11_TextChanged(object sender, EventArgs e)
        {
            if (txtSerie_Tabla11.MaxLength > txtSerie_Tabla11.Text.Length)
            {
                 txtSerie_Tabla11.Focus();
            }else{

                txtRuc.Focus();
            }
        }

        private void panel1_Paint(object sender, PaintEventArgs e)
        {

        }

      

        }


    }

